namespace RBAC.Read.Api.Application.Dto.Approval
{
    /// <summary>
    /// 审批流程列表DTO
    /// </summary>
    public class ApprovalProcessListDto
    {
        /// <summary>
        /// 流程ID
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 流程名称
        /// </summary>
        public string ProcessName { get; set; } = string.Empty;

        /// <summary>
        /// 流程描述
        /// </summary>
        public string Description { get; set; } = string.Empty;

        /// <summary>
        /// 流程类型（采购订单/销售订单/入库单/出库单等）
        /// </summary>
        public string ProcessType { get; set; } = string.Empty;

        /// <summary>
        /// 业务类型编号（1:采购订单 2:销售订单 3:入库单 4:出库单）
        /// </summary>
        public int BusinessType { get; set; }

        /// <summary>
        /// 业务类型名称
        /// </summary>
        public string BusinessTypeName { get; set; } = string.Empty;

        /// <summary>
        /// 是否启用
        /// </summary>
        public bool IsEnabled { get; set; }

        /// <summary>
        /// 流程状态（1:正常 2:草稿 3:已停用）
        /// </summary>
        public int Status { get; set; }

        /// <summary>
        /// 流程状态名称
        /// </summary>
        public string StatusName { get; set; } = string.Empty;

        /// <summary>
        /// 审批节点数量
        /// </summary>
        public int NodeCount { get; set; }

        /// <summary>
        /// 审批流程描述（用于显示）
        /// </summary>
        public string FlowDescription { get; set; } = string.Empty;

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string CreateBy { get; set; } = string.Empty;

        /// <summary>
        /// 是否有进行中的审批实例
        /// </summary>
        public bool HasPendingInstances { get; set; }
    }
}
